package 力扣日常刷题.木23一月.第08天308;

/**
 * @author 帅小伙
 * @date 2022/3/8
 * @description
 */
public class Demo15推多米诺 {

    public String pushDominoes(String dominoes) {
        char[] s = dominoes.toCharArray();
        int n = s.length, i =0;
        // 第一个骨牌有向左的趋势  最后一个骨牌有向右   影响这样不会对结果产生
        char left = 'L';
        while(i < n) {
            int j = i;
            //连续没有被推动的骨牌
            while(j < n && s[j] == '.')j++;
            char right = j < n ? s[j] : 'R';
            // 方向相同
            if(left == right){
                while(i < j) {
                    s[i++] = right;
                }
            } else if (left == 'R' && right == 'L') {// 向中间靠
                int k = j -1;
                while(i < k){
                    s[i++] = 'R';
                    s[k--] = 'L';
                }
            }
            left = right;
            i = j + 1;
        }
        return new String(s);
    }

}
